package com.candy.dao;

import java.sql.*;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class DBTestDriver {

    public static void main(String[] args) {
        String strSql="INSERT INTO depts(dept_id,name,descripition) VALUES(5,'财务部','绩效考核');";
        int i = DBHelper.update(strSql);
        System.out.println(i);
    }

    public static void test03() {
        String strSql="SELECT * FROM employees;";
        List<Map<String, Object>> list = DBHelper.query4ListMap(strSql);
        for (Map<String, Object> mapEachRow:list
             ) {
            Set<Map.Entry<String, Object>> setEn = mapEachRow.entrySet();
            for (Map.Entry<String, Object> en:setEn
                 ) {
                System.out.print("    "+en.getValue());
            }
            System.out.println();
        }
    }

    public static void test02() {
        try {
            ResultSet rs=DBHelper.query("SELECT * FROM depts;");
            while (rs.next()){
                System.out.print("  "+rs.getObject(1));
                System.out.print("  "+rs.getObject(2));
                System.out.println();
            }
            System.out.println("再次对查询结果进行遍历");
            while (rs.next()){
                System.out.print("  "+rs.getObject(2));
                System.out.println();
            }
        }catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void test01() {
//        (1)注册或实例化jdbc的驱动类
        System.out.println("================jdbc================");
        //提供jdbc连接数据库的url字符串、数据库驱动类名、用户名、密码
        //jdbc:mysql固定格式; localhost：表示数据库服务器的访问地址（主机名：ip，其中localhost 127.0.0.1 表示主机）
        //3306：mysql数据库的默认监听客户端的端口号，端口号后面是连接的数据库名（写入自己的数据库名）
        String strUrl="jdbc:mysql://localhost:3306/nsd0724? characterEncoding=utf8 & useSSL=false & serverTimezone=UTC & rewriteBatchedStatements=true";
        String strDBDriverType="com.mysql.cj.jdbc.Driver";//数据库驱动类名
        String strUserName="root";//用户名
        String strPwd="root";//密码

        try {
            //加载数据库驱动类
            Class.forName(strDBDriverType);//固定写法（反射）
//        (2)获取数据库连接对象connection
            Connection conn = DriverManager.getConnection(strUrl,strUserName,strPwd);
//        (3)获取数据库操作对象Statement(执行增删改查)
            Statement st = conn.createStatement();
//        (4)执行SQL语句，获取数据操作结果或者结果集对象ResultSet
            String str = "SELECT * FROM depts;";
            //接收返回结果
            ResultSet rs = st.executeQuery(str);
//        (5)解析结果集对象ResultSet，进行相关的业务处理;
            //使用while循环进行resultSet的解析
            //next()方法用于判断,在查询结果集中有没有下一条记录，在开始前，next方法定位在第一条记录之前的位置
            while (rs.next()) {
                System.out.print("  " + rs.getObject(1));
                System.out.print("  " + rs.getObject(2));
                System.out.println();
            }
            rs.close();
            st.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
